Synchronizacja XML
Synchronizacja - uruchamianie
1. W folderze z systemem znajduje się folder /lib/XMLsynch
2. W tym folderze znajdują się 2 pliki konfiguracyjne, które nas interesują:
a) config.php.org
b) config.pgsql.php.org
3. Należy zmienić nazwy tych plików na odpowiednio:(lub utworzyć kopię, aby w razie awarii mieć wzór pliku)
a) config.php
b) config.pgsql.php
4. Po zmianie nazwy wchodzimy do pliku config.pgsql.php, a następnie podajemy dane do bazy systemu, gdzie:
$pgHOST to adres IP serwera (domyślnie localhost)
$pgUSER nazwa użytkownika bazy danych
$pgPASS hasło użytkownika bazy danych
$pgPORT port na którym nasłuchuje baza
$pgDB nazwa bazy danych
Przy uzupełnianiu tego pliku należy pamiętać o pojedynczych cudzysłowach oraz średnikach kończących linie (obowiązuje tutaj składnia języka PHP)
5. Po uzupełnieniu danych tworzymy 3 foldery z prawem do zapisu i odczytu.
a) upload (tutaj będą trafiać pliki XML)
b) backup (tutaj pliki będą backupowane)
c) enqueue (tutaj system będzie ciąć duże pliki xml na mniejsze i przechowywać ID tych plików w bazie - tabela xml_files_queue)
6. Po utworzeniu folderów należy wrócić do folderu XMLsynch i otworzyć plik config.php.
Trzy pierwsze linie kodu odpowiadają za dostęp do folderów które wcześniej utworzyliśmy(należy podać teraz prawidłowe ścieżki to tych folderów)
7. Linia 4 mówi o folderze gdzie znajdują się odpowiednie metody (funkcje) do działania synchronizacji. Domyślnie jest to zawsze /XMLsynch/methods/
Tutaj również obowiązuje składnia języka PHP, należy zwrócić szczególna uwagę na pojedyncze cudzysłowie oraz slashe.
8. Linia define('SYNCH_LOG_LEVEL', 4); mówi nam ile komunikatów chcemy widzieć w synchronizacji. 0 - wszystkie, 4 - tylko błędy.
Niezalecane jest włączanie poziomu 0 ponieważ log synchronizacji bardzo szybko rośnie do rozmiarów kilku gigabajtów, jeżeli synchronizacja jest wykonywana 24/h.
9. Po utworzeniu plików konfiguracyjnych należy stworzyć plik o nazwie start_xml.sh, a w nim nastepujące dane:
cd sciezka_do_folderu_systemu/lib/XMLsynch<br/>
php cliDoSynchronize.php | tee -a sciezka_do_pliku_log/import-xml.log
czyli np.
cd /var/www/system/lib/XMLsynch<br/>
php cliDoSynchronize.php | tee -a /var/www/system/lib/XMLsynch/import-xml.log
jeżeli nie mamy na linuxie zainstalowanej komendy też należy ja zainstalować.
10. Z poziomu shela wydajemy komendę jako root: sh start_xml.sh
Synchronizacja startuje.

Bardzo przydaje się również użycie programu screen który uruchamiany jest z poziomu terminala. Pozwala on uruchomić synchronizację w tle
przez co okno terminala nie musi być cały czas uruchomione.
Program wywołujemy komendę screen
Po uruchomieniu synchronizacji (pkt 10) wybieramy jednocześnie na klawiaturze przyciski ctrl shift a, puszczamy ten klawisze i wybieramy literę d

Należy pamiętać, aby w php włączony był moduł XML, ponieważ bez niego synchronizacja może się nie uruchomić
Tworzenia dokumentu XML i integracja bazy danych
Dokumentacja dot. tworzenia dokumentu XML znajduje się w plikach systemu, w folderze doc/xml/
Kiedy dokument jest już utworzony należy powiadomić synchronizację XML, które moduły ma wgrywać do bazy(może to być tylko np. produkt, lub stan magazynowy)
W tabeli xml_synch_api_method wprowadzamy nazwy, które umieściliśmy w pliku XML.
api_method_id - id z tabeli xml_synch_api_key_to_api_method
method_name oraz xml_method_name to nagłówki z dokumentacji XML.
method_description uzupełniamy wg własnych potrzeb.
xml_method_parameters - pozostawiamy puste
parameters_quantity - pozostawiamy puste
description - pozostawiamy puste
Tabela: xml_synch_api_key
api_key_id - dowolny id
key_value klucz który tworzymy qg dokumentacji XML
key_owner - właściciel klucza
is_active - czy klucz jest aktywny (TRUE/FALSE)
active_from - od kiedy klucz ma być aktywny
active_to - do kiedy ma być aktywny
last_usage - pozostawiamy puste
hosts_available - adresy IP z jakich synchronizacja ma sie łączyć (mogą być rozdzielone przecinkiem)
Tabela: xml_synch_api_key_to_api_method
id - dowolne
api_key_id - api_key_id z tabeli xml_synch_api_key
api_method_id - api_method_id z tabeli xml_synch_api_method
is_active - czy klucz jest aktywny (TRUE/FALSE)
active_from - od kiedy klucz ma być aktywny
active_to - do kiedy ma być aktywny